home *** CD-ROM | disk | FTP | other *** search
/ Aminet 21 / Aminet 21 (1997)(GTI - Schatztruhe)[!][Oct 1997].iso / Aminet / util / rexx / LM2xxx.lha / LM_TAB2HTML.rexx < prev    next >
OS/2 REXX Batch file  |  1997-08-10  |  8KB  |  305 lines

  1. /*                                                                          *
  2.    $VER: LM_TAB2xxx.REXX 1.07 (10.08.97) © 1997 Christian T. Steigies
  3.  * Convert LigaManager output to HTML,LaTeX                                 *
  4.  *                                                                          *
  5.  * Usage: RX LM_TAB2HTML <infile>                                           *
  6.  * Usage: RX LM_TAB2LaTeX <infile>                                          *
  7.  *                                                                          */
  8. /*+ "Hauptprogramm" */
  9. /*+ "version, messages" */
  10. ver    = "1.07"
  11. date   = "10.08.97"
  12. date2k = "10.08.1997"
  13. copy   = "© 1997 Christian T. Steigies"
  14. DEBUG  = 0
  15. OUTPUT = 0 /* 1=HTML, 2=LaTeX */
  16.  
  17. ECHO "LigaManager output converter "ver" ("date")" copy
  18. ECHO "Freeware, NO commercial usage ;-)"
  19. ECHO
  20. ECHO "This program comes without ANY WARRANTY, use at your own risk!"
  21. ECHO
  22. /*- */
  23. /*+ "output definition" */
  24. PARSE source cmdline
  25. IF LEFT(UPPER(WORD(cmdline,3)),11)="LM_TAB2HTML" THEN DO
  26.     prg    = "LM_TAB2HTML"
  27.     outfile = "ram:TAB.html"
  28.     a       = "<TR>"
  29.     x       = "<TD>"
  30.     xr      = "<TD ALIGN=""RIGHT"">"
  31.     y       = "</TD>"
  32.     z       = "</TD></TR>"
  33.     T       = ":"
  34.     blank   = " "
  35.     OUTPUT=1
  36.     ECHO "Converting to HTML"
  37. END
  38. ELSE IF LEFT(UPPER(WORD(cmdline,3)),12)="LM_TAB2LATEX" THEN DO
  39.     prg    = "LM_TAB2LaTeX"
  40.     outfile = "ram:TAB.tex"
  41.     a       = ""
  42.     x       = ""
  43.     xr      = ""
  44.     y       = " & "
  45.     z       = " \\"
  46.     T       = ":"
  47.     blank   = ""
  48.     OUTPUT=2
  49.     ECHO "Converting to LaTeX"
  50. END
  51. ELSE DO
  52.     ECHO "Don't rename this program! Valid Names are:"
  53.     ECHO " LM2HTML.REXX    for HTML output"
  54.     ECHO " LM2LaTeX.REXX   for LaTeX output"
  55.     EXIT
  56. END
  57. /*- */
  58. /*+ "error checking" */
  59. IF ARG() ~= 1 THEN CALL usage(prg)
  60. IF EXISTS( ARG(1) ) ~= 1 THEN DO
  61.     ECHO "infile not found!"
  62.     ECHO
  63.     CALL usage(prg)
  64. END
  65.  
  66. OPEN(in,ARG(1),r)
  67. OPEN(out,outfile,w)
  68.  
  69. titel = READLN(in)
  70.  
  71. nonascii = X2C('1B')||X2C('5B')
  72. IF INDEX(titel,nonascii,3) > 0 THEN DO
  73.     ECHO "this is not an ASCII input file!"
  74.     ECHO "I don't know how to handle this (yet...)"
  75.     ECHO "Did you disable ""Steuerzeichen"" in options?"
  76.     ECHO
  77.     CALL usage(prg)
  78. END
  79. /*- */
  80. /*+ "parsing" */
  81. /* ECHO titel */
  82. name     = INDEX(titel," Sp ")
  83. spiele_a = INDEX(titel," Sp ")
  84. gew_a    = INDEX(titel,"  g ")
  85. une_a    = INDEX(titel,"  u ")
  86. ver_a    = INDEX(titel,"  v ")
  87. Tore1    = INDEX(titel,"  v ")+4
  88. Tore_a   = INDEX(titel," Tore ")
  89. Quot_a   = INDEX(titel," Quot ")
  90. Diff_a   = INDEX(titel,"Diff ")
  91. Pt_a     = INDEX(titel," Pt")
  92. Pkte_a     = INDEX(titel," Pkte")
  93. /*+ "Debug" */
  94. IF DEBUG=1 THEN DO
  95.     ECHO "Spiele:        "spiele_a
  96.     ECHO "Gewonnen:      "gew_a
  97.     ECHO "Unentschieden: "une_a
  98.     ECHO "Verloren:      "ver_a
  99.     ECHO "Tore:          "Tore_a
  100.     ECHO "Quot:          "Quot_a
  101.     ECHO "Diff:          "Diff_a
  102.     ECHO "Pt:            "Pt_a
  103.     ECHO "Pkte:          "Pkte_a
  104.     ECHO SUBSTR(titel,spiele_a,4)
  105.     ECHO SUBSTR(titel,gew_a,3)
  106.     ECHO SUBSTR(titel,une_a,3)
  107.     ECHO SUBSTR(titel,ver_a,3)
  108.     ECHO SUBSTR(titel,Tore_a,7)
  109.     IF Quot_a >0 THEN DO
  110.         ECHO SUBSTR(titel,Quot_a,5)
  111.     END
  112.     IF Diff_a > 0 THEN DO
  113.         ECHO SUBSTR(titel,Diff_a,4)
  114.     END
  115.     ECHO SUBSTR(titel,Pt_a,7)
  116. END
  117. /*- */
  118. IF (spiele_a==0 | gew_a==0 | une_a==0 | ver_a==0 | Tore_a==0 |  (Quot_a==0 & Diff_a==0) | (Pt_a==0 & Pkte_a==0) ) THEN DO
  119.     ECHO "infile corrupt!"
  120.     CALL usage(prg)
  121. END
  122. /*- */
  123. /*+ "Output Header" */
  124. SELECT
  125.     WHEN OUTPUT=1 THEN DO
  126. /*+ "HTML" */
  127.         WRITELN(out, "<!DOCTYPE HTMLPUBLIC ""-//IETF//DTD HTML 3.2//EN//"">")
  128.         WRITELN(out, "<!-- created with: LigaManager2HTML "ver" by CTS -->")
  129.         WRITELN(out, "<HTML><HEAD><TITLE>Tabelle created with LM2HTML "ver" by CTS</TITLE></HEAD>")
  130.         WRITELN(out, "<BODY>")
  131.         WRITELN(out, "<CENTER>")
  132.         WRITELN(out, "<TABLE BORDER=""1"" CELLPADDING=""5"" CELLSPACING=""0"" WIDTH=""90%"">")
  133.         WRITELN(out, "<TR>")
  134.         WRITELN(out, "<TD COLSPAN=""2"" ALIGN=""LEFT"" VALIGN=""TOP""><B>"STRIP(LEFT(titel,name-1))"</B></TD>")
  135.         WRITELN(out, "<TD ALIGN=""CENTER"" VALIGN=""TOP""><B>Sp</B></TD>")
  136.         WRITELN(out, "<TD VALIGN=""TOP""><B>g</B></TD><TD VALIGN=""TOP""><B>u</B></TD><TD VALIGN=""TOP""><B>v</B></TD>")
  137.         WRITELN(out, "<TD ALIGN=""CENTER"" COLSPAN=""3"" VALIGN=""TOP""><B>Tore</B></TD>")
  138.         IF Quot_a>0 THEN DO
  139.             WRITELN(out, "<TD VALIGN=""TOP""><B>Quot</B></TD>")
  140.         END
  141.         ELSE DO
  142.             WRITELN(out, "<TD VALIGN=""TOP""><B>Diff</B></TD>")
  143.         END
  144.         IF Pt_a>0 THEN DO
  145.             WRITELN(out, "<TD VALIGN=""TOP""><B>Pt</B></TD>")
  146.         END
  147.         ELSE DO
  148.             WRITELN(out, "<TD ALIGN=""CENTER"" COLSPAN=""3"" VALIGN=""TOP""><B>Punkte</B></TD>")
  149.         END
  150.         WRITELN(out, "</TR>")
  151. /*- */
  152.     END
  153.     WHEN OUTPUT=2 THEN DO
  154. /*+ "LaTeX" */
  155.         WRITELN(out, "% created with: LigaManager2LaTeX "ver" by CTS")
  156.         WRITELN(out, "\documentclass{article}")
  157.         WRITELN(out, "\usepackage{german}")
  158.         WRITELN(out, "\usepackage[latin1]{inputenc}")
  159.         WRITELN(out, "\begin{document}")
  160.         IF Pt_a>0 THEN DO
  161.             WRITELN(out, "\begin{tabular}{rl|r|rrr|rcr|r|r}")
  162.         END
  163.         ELSE DO
  164.             WRITELN(out, "\begin{tabular}{rl|r|rrr|rcr|r|rcr}")
  165.         END
  166.         WRITELN(out, "\multicolumn{2}{c|}{"STRIP(LEFT(titel,name-1))"} & Sp & g & u & v &")
  167.         WRITELN(out, "\multicolumn{3}{c|}{Tore} &")
  168.         IF Quot_a>0 THEN DO
  169.             WRITELN(out, "Quot &")
  170.         END
  171.         ELSE DO
  172.             WRITELN(out, "\multicolumn{1}{c|}{Diff} &")
  173.         END
  174.         IF Pt_a>0 THEN DO
  175.             WRITELN(out, "\multicolumn{1}{c}{Pt} \\ ")
  176.         END
  177.         ELSE DO
  178.             WRITELN(out, "\multicolumn{3}{c}{Punkte} \\ ")
  179.         END
  180.         WRITELN(out, "\hline")
  181. /*- */
  182.     END
  183.     OTHERWISE EXIT 10 /* should be unreachable, but who knows... */
  184.     END
  185. /*- */
  186. /*+ "main loop" */
  187. DO WHILE ~ (EOF(in) & zeile=="")
  188.     zeile = READLN(in)
  189.     IF zeile == "" THEN BREAK
  190.     nplatz = INDEX(zeile,".")
  191.     IF nplatz > 0 THEN DO
  192.         platz = LEFT(zeile,nplatz-1)
  193.     END
  194.     IF INDEX(zeile,":") = 0 THEN DO
  195.         NOP
  196.     END
  197.     ELSE DO
  198.         n2platz =index(zeile,")")
  199.         IF n2platz > 0 THEN DO
  200.             team  = STRIP(RIGHT(LEFT(zeile,name-1),name-n2platz-2))
  201.         END
  202.         ELSE DO
  203.             team  = STRIP(RIGHT(LEFT(zeile,name-1),name-nplatz-2))
  204.         END
  205.         Spiele = STRIP(SUBSTR(zeile,spiele_a,4))
  206.         gew    = STRIP(SUBSTR(zeile,gew_a,3))
  207.         une    = STRIP(SUBSTR(zeile,une_a,3))
  208.         ver    = STRIP(SUBSTR(zeile,ver_a,3))
  209.         TorePunkte = SUBSTR(zeile,tore1)
  210.         IF WORDS(TorePunkte) = 3 THEN DO
  211.             Tore = WORD(TorePunkte,1)
  212.             ToreP    = STRIP(LEFT(tore,POS(":",Tore)-1))
  213.             IF ToreP == "" THEN ToreP =blank
  214.             ToreM    = STRIP(SUBSTR(tore,POS(":",Tore)+1))
  215.             IF ToreM == "" THEN ToreM =blank
  216.             QuotDiff = STRIP(WORD(TorePunkte,2))
  217.             Punkte   = STRIP(WORD(TorePunkte,3))
  218.         END
  219.         ELSE DO
  220.             Tore = WORD(TorePunkte,1)
  221.             ToreP    = STRIP(LEFT(tore,POS(":",Tore)-1))
  222.             IF ToreP == "" THEN ToreP =blank
  223.             ToreM    = STRIP(SUBSTR(tore,POS(":",Tore)+1))
  224.             IF ToreM == "" THEN ToreM =blank
  225.             QuotDiff = STRIP(SUBWORD(TorePunkte,2,2))
  226.             Punkte   = STRIP(WORD(TorePunkte,4))
  227.         END
  228.  
  229.         IF Pt_a >0 THEN DO
  230.             Pt = STRIP(Punkte)
  231.             END
  232.         ELSE DO
  233.             PunkteP = LEFT(Punkte,POS(":",Punkte)-1)
  234.             PunkteM = SUBSTR(Punkte,POS(":",Punkte)+1)
  235.         END
  236. /*+ "Debug" */
  237.         IF DEBUG = 1 THEN DO
  238.             ECHO "Platz: "platz
  239.             ECHO "Team: "team
  240.             ECHO "Spiele: "SUBSTR(zeile,spiele_a,4)
  241.             ECHO "g: "SUBSTR(zeile,gew_a,3)
  242.             ECHO "u: "SUBSTR(zeile,une_a,3)
  243.             ECHO "v: "SUBSTR(zeile,ver_a,3)
  244.             ECHO "Tore: "SUBSTR(zeile,Tore_a,7)
  245.             IF Quot_a >0 THEN DO
  246.                 ECHO "Quot: "SUBSTR(zeile,Quot_a,5)
  247.             END
  248.             IF Diff_a > 0 THEN DO
  249.                 ECHO "Diff: "SUBSTR(zeile,Diff_a,4)
  250.             END
  251.             ECHO "Punkte: "SUBSTR(zeile,Pt_a,7)
  252.         END
  253. /*- */
  254. /* WRITELN(out, a||platz||"."||y||x||"("||vplatz||")"||y) */
  255. /* Vortagsplatzierung gibts beim nächsten Mal... */
  256.         WRITELN(out, a||xr||platz||"."||y)
  257.         WRITELN(out, " "||x||team||y||xr||Spiele||y)
  258.         WRITELN(out, " "||xr||gew||y||xr||une||y||xr||ver||y)
  259.         WRITELN(out, " "||xr||ToreP||y||x||T||y||xr||ToreM||y)
  260.         WRITELN(out, " "||xr||QuotDiff||y)
  261.         IF Pt_a>0 THEN DO
  262.             WRITELN(out, " "||xr||Pt||z)
  263.         END
  264.         ELSE DO
  265.             WRITELN(out, " "||xr||PunkteP||y||x||T||y||xr||PunkteM||z)
  266.         END
  267.         /*END*/
  268.     END
  269. END
  270. /*- */
  271. /*+ "Output Footer" */
  272. SELECT
  273.     WHEN OUTPUT=1 THEN DO
  274. /*+ "HTML" */
  275.         WRITELN(out, "</TABLE>")
  276.         WRITELN(out, "</CENTER>")
  277.         WRITELN(out, "</BODY>")
  278.         WRITELN(out, "</HTML>")
  279. /*- */
  280.     END
  281.     WHEN OUTPUT=2 THEN DO
  282. /*+ "LaTeX" */
  283.         WRITELN(out, "\end{tabular}")
  284.         WRITELN(out, "\end{document}")
  285. /*- */
  286.     END
  287.     OTHERWISE EXIT 10 /* should be unreachable, but who knows... */
  288.     END
  289. /*- */
  290. CLOSE(out)
  291. CLOSE(in)
  292. ECHO "Ready."
  293. EXIT
  294. /*- */
  295. /*+ "Unterroutinen"*/
  296. usage:
  297. ARG prg
  298.     SAY "Usage: RX" prg "<infile>"
  299.     ECHO
  300.     ECHO "Ready."
  301.     EXIT
  302.  
  303. /*- */
  304.  
  305.